
//
//  Statuses.swift
//  weibo
//
//  Created by Qing on 2017/7/23.
//  Copyright © 2017年 成哥哥. All rights reserved.
//

import UIKit

class Statuses: NSObject {
    
    /// 发表时间
    var created_at: String?
    
    /// 用户ID
    var id: Int = 0
    
    /// 发布内容
    var text: String?
    
    /// 来源
    var source: String?
    
    /// 用户个人数据
    var user: User?
    
    ///单条内容的图片
    var pic_urls: [[String: String]]?

    init(dict: [String: Any]){
    
        super.init()
        
        setValuesForKeys(dict)
    
    }

    override func setValue(_ value: Any?, forUndefinedKey key: String) {}
    
    
//  当字典多层嵌套的时候，可以单独创建一个Model，重写setvalue方法进行转换
    override func setValue(_ value: Any?, forKey key: String) {
        
        //如果Key是user并且是字典，则按照User进行转换。
        if key == "user" {
            
            if let dict = value as? [String: Any] {
                
//                user = User.init(dict: dict)
                
                user = User(dict: dict)
            return
            }
            
        }
//        重新调用父类的方法进行转换，否则除了user其他的value都为null。
        super.setValue(value, forKey: key)

    }
    
    override var description: String {
        
        let kyes = ["created_at", "id", "text", "source", "user", "pic_urls"]
        
        return dictionaryWithValues(forKeys: kyes).description
    
}
}
